package test.day02;

public class ReverseKLinkGroup {
	public ListNode reverseKGroup(ListNode head, int k) {
		ListNode dummy = new ListNode();
		dummy.next=head;
		ListNode pre=dummy;
		ListNode cur=head;
		int len=0;
		while(cur!=null){
			cur=cur.next;
			len++;
		}
		cur=head;
		for(int i=0;i<len/k;++i){
			for(int j=0;j<k-1;++j){
				ListNode nex=cur.next;
				cur.next=nex.next;
				nex.next=pre.next;
				pre.next=nex;
			}
			pre=cur;
			cur=cur.next;
		}
		return dummy.next;
	}

	public class ListNode {
        int val;
        ListNode next;
        ListNode() {}
        ListNode(int val) { this.val = val; }
        ListNode(int val, ListNode next) { this.val = val; this.next = next; }
    }
}
